<?php
include_once 'DomenyModel.php';
include_once 'Panel/ThemeModel.php';
include_once 'Panel/UsersModel.php';

class DomenyController extends DomenyModel{
	protected $user;
	private $view;
	protected $db;
	protected $domena;
	protected $abonament;
	
	function __construct(){
		global $objSession,$parameters;
		if ( !$objSession->IsLoggedIn()){	tools::_redirect('zaloguj_sie.html'); return;}
		$this->databaseSetup();
		
		$this->abonament = $parameters['domeny']['abonament'];
	}
	
	/**
	 * Instalacja folderu, bazy płatności
	 * 
	 * @return unknown_type
	 */
	private function databaseSetup(){
		global $parameters;	
		// sciezka do folderu z baza platnosci
		tools::_add_folder($parameters['domeny']['host']);
		// parametry instalacji bazy
		$paramDomeny__ = array('drivers'=>array('driver'=>'sqlite'),
							  'sqlite'=>array('host'=>$parameters['domeny']['host'],
							  'database'=>$parameters['domeny']['database'] ));
		$this->db = config::getDB($paramDomeny__);
		$parameters['sqlite']['host'] = $parameters['domeny']['host'];
		$parameters['drivers']['dbinstall'] = $parameters['domeny']['dbinstall'];
		config::_instal_database($parameters['drivers']['driver'],$this->db);
	}

	/**
	 * obsługa zdazen dla administratora
	 * @return unknown_type
	 */
	public function indexAction(){
		switch($this->view){
			case 'domeny':
				tools::_display("Domeny/lista_domen.tpl");
				break;

			default:
				$this->listaDomenAdministratorAction();
		}
		
	}
	
	public function listaDomenAdministratorAction(){
		global $objSession;
		if ( !$objSession->IsLoggedIn()){	tools::_redirect('zaloguj_sie.html'); return;}
		tools::_assign("users",UsersModel::get_registred_users_list());
		tools::_display("Domeny/lista_uzytkownikow.tpl");		

	}

	public function listaDomenUzytkownikaAction($id){
		global $objSession;
		if ( !$objSession->IsLoggedIn()){	tools::_redirect('zaloguj_sie.html'); return;}
		$this->view = "domeny";	
		$this->user = new UserController($id);
		tools::_assign("platnik",$this->user->all);
		tools::_assign("domeny",$this->listaDomenUzytkownika($this->user->id));	
	}
	
	/**
	 * główna funckcja dla zdażen uzytkownika
	 * @return unknown_type
	 */
	public function mojeDomenyAction(){
		global $objSession;
		if ( !$objSession->IsLoggedIn()){	tools::_redirect('zaloguj_sie.html'); return;}
		
		switch($this->view){
			case 'oplac_domene':
				//tools::_assign("platnik",$objSession->GetUserObject()->all);
				$domena = $this->daneDomeny();
				if(is_array($domena)){
					$domena['data_rejestracji'] = $domena['data_zakonczenia'];
					$domena['data_zakonczenia'] =  date('Y-m-d H:i:s',mktime (date('H'),date('i'),date('s'),date('m'),  date('d'),  date('Y')+1));
					tools::_assign("domena",$domena);
					tools::_display("Domeny/nowa_platnosc.tpl");
				}
				break;
				
			default:
				tools::_assign("platnik",$objSession->GetUserObject()->all);
				tools::_assign("domeny",$this->listaDomenUzytkownika($objSession->GetUserObject()->id));
				tools::_display("Domeny/lista_domen.tpl");
				break;
		}		

	}
	
	public function nowaDomenaAction(){
		global $objSession,$config;
		$arr = unserialize(SUB_URL);
		$domena = str_replace('www.','',$_SERVER['HTTP_HOST']);
		$rows = count($arr[$domena])+1;
		tools::_assign("sub__xx",$arr[$domena]);
		tools::_assign("sub__rows",$rows);
		
		$objSession->nowy_szablon = ($config->__isset('s')) ? $config->s : $objSession->nowy_szablon;
		$wzor = explode('-',$objSession->nowy_szablon);
		
		

		
		if ( $objSession->IsLoggedIn()){
			$szablony_ = unserialize(SZABL);
			$ramki_ = unserialize(RAMKI);
			if (is_array($wzor)){	
				if( array_key_exists($wzor[0],$szablony_) && array_key_exists($wzor[0],$ramki_) && array_key_exists($wzor[1],$ramki_[$wzor[0]]) && array_key_exists($wzor[2],$ramki_[$wzor[0]][$wzor[1]])){			
					tools::_assign('wyglad',array('szablon'=>$wzor[0],'theme'=>$wzor[1],'color'=>$wzor[2]));
					tools::_display("Domeny/nowa_domena.tpl");
				}else{
					echo 'Prosze wybrac inny szablon, gdyz ten juz nie istnieje lub jest zarezerwowany.';
				}
			}else{
				echo 'proszę najpierw wybrac szablon strony www.';
			}			
		}else{
			tools::_redirect('zaloguj_sie.html?url=dodaj_domene.html');
		}
	}
	
	public function oplacNowyOkresAction($domena){
		$data = explode('_user_',$domena);
		$this->view = "oplac_domene";
		$this->domena = $data[0];	
		$this->user = new UserController($data[1]);
		tools::_assign("platnik",$this->user->all);	
	}
	
	public function dodajDomeneAction(){
		global $parameters, $objSession,$config;	
		// sprawdzamy czy uzytkownik jest zalogowany
		if ( !$objSession->IsLoggedIn()){	tools::_redirect('zaloguj_sie.html'); return;}
		//pobieramy obiekt uzytkownika
		$user = $objSession->GetUserObject();
		$nowadomena = str_replace('www.','',str_replace('http://','',$config->domena.$config->ogon_domeny));
		if( $this->dodajDomeneDoBazy($user,$config->domena.$config->ogon_domeny,$config->typ_domeny)){	
			$parameters = config::_instal_ini();
			$parameters['sqlite']['database'] =  $nowadomena.".db";
			
			if( !config::sprawdzTypDomeny($nowadomena))  $parameters['drivers']['urlspanel'] = $parameters['drivers']['subpanel'] ;
			$parameters['admin']['user'] = $user->nazwa_uzytkownika;
			$parameters['admin']['pass'] = $user->md5_haslo;
			$parameters['admin']['name'] = $user->imie;
			$parameters['admin']['surn'] = $user->nazwisko;
			$parameters['admin']['mail'] = $user->email;
				
			$dbx = config::getDB($parameters);
			config::_instal_database($parameters['drivers']['driver'],$dbx);

			$_settings = array('css'=>$config->szablon."/ramki/".$config->theme."_".$config->color."/".$config->szablon."_".$config->theme."_".$config->color.".css",'szablon'=>$config->szablon,'ramka_theme'=>$config->theme,'ramka_theme_kolor'=>$config->color);
			theme::saveSettings($_settings,$dbx);
			
			$tresc = "
			Dodano nową stronę http://{$nowadomena},
			przez użytkownika {$user->imie} {$user->nazwisko} ({$user->nazwa_uzytkownika}),
 			e-mail {$user->email}
			";
			tools::__wiadomosc("administrator",$parameters['admin']['mail'],$parameters['admin']['mail'],"nowa strona www",$tresc,"txt",false);

		}
		tools::_redirect("moje_domeny.html",null,0,'php');		
	}
	
	public function usunAction($domena){
		global $parameters, $objSession,$config;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){ tools::_redirect('zaloguj_sie.html'); return;}
		
		$this->usunDomene($domena);
		tools::_redirect("moje_domeny.html",null,0,'php');
	}
}
